//此文件用于配置axios

//先引入axios
import axios from "axios";
//从router中引入router对象
import router from "../router/index";
//引入element-ui
import ElementUI from "element-ui";

//设置axios的基础url
axios.defaults.baseURL =
  process.env.NODE_ENV === "development" ? "api" : "http://www.chst.vip";

//nginx上线用下面的代理
// axios.defaults.baseURL =
//   process.env.NODE_ENV === "development" ? "/api" : "/api";

//允许请求携带验证
axios.defaults.withCredentials = true;

// 创建请求拦截器，给每个请求都携带上传递的内容（比如token）
axios.interceptors.request.use(config => {
  //如果是登陆，注册，验证码，不需要携带token请求
  if (config.url == "/login") {
    return config; //放行
  } else {
    let token = localStorage.getItem("stu-login-token"); //将本地的token拿出来
    config.headers["authorization"] = token; //请求头中携带token
    return config; //放行
  }
});

//创建二次拦截器，根据后台返回的token验证结果
axios.interceptors.response.use(config => {
  if (config.data.code == "1004" || config.data.code == "10022") {
    ElementUI.Message.error("登陆信息不正确，请重新登陆");
    //同时清除掉无效token,否则会影响后续逻辑
    localStorage.removeItem("stu-login-token");
    router.push("/login");
  }
  return config;
});
//设置请求超时时间
axios.create({
  timeout: 6000
});

//将axios暴露出去
export default axios;
